# def area(width, height):
#     return width * height
# def printName(name):
#     print(name)
# w = 5
# h = 4
# print(area(w,h))
# printName("任硕")

# 函数调用
# def printme(str):
#     print(str)
#     return
# printme("单位撒强大完善的")
# printme("嗯啊发的哇是否")
# 可写函数说明
# def printinfo(name, age):
#     "打印任何传入的字符串"
#     print("名字: ", name)
#     print("年龄: ", age)
#     return
# # 调用printinfo函数
# printinfo(age=50, name="runoob")

# 可写函数说明，默认参数
# def printinfo(name, age=35):
#     "打印任何传入的字符串"
#     print("名字: ", name)
#     print("年龄: ", age)
#     return
# # 调用printinfo函数
# printinfo(age=50, name="runoob")
# print("------------------------")
# printinfo(name="runoob")
# # 不定长参数
# def printinfo(arg1, *vartuple):
#     "打印任何传入的参数"
#     print("输出: ")
#     print(arg1)
#     print(vartuple)
# # 调用printinfo 函数
# printinfo(70, 60, 50)
# 带两个星号就会以字典的形式导入
# def de(name, **age):
#     print(name)
#     print(age)
#     return
# de("张三", a=2, b=3, c=5)
# 星号也可以单独出现
# ,如果单独出现星号 * 后的参数必须用关键字传入。
# 这边不理解单独出现的意义是什么
# def f(a, b, *, c):
#     return a+b+c
# print(f(1, 2, c =5))
# 匿名函数
# lambda 函数的语法只包含一个语句，如下：
# lambda [arg1 [,arg2,.....argn]]:expression
# sum = lambda a, b, c : a + b + c
# print(sum(1, 2, 3))
# # return [表达式] 语句用于退出函数，选择性地向调用方返回一个表达式。
# # 不带参数值的return语句返回None。之前的例子都没有示范如何返回数值，
# # 以下实例演示了 return 语句的用法：
# def sum(a, b):
#     total = a + b
#     print("函数内： ", total)
#     return total
# total = sum(10, 20)
# print("函数外", total)
# Python3.8 新增了一个函数形参语法 / 用来指明函数形参必须
# 使用指定位置参数，不能使用关键字参数的形式。
# 在以下的例子中，形参 a 和 b 必须使用指定位置参数，c
# 或 d 可以是位置形参或关键字形参，而 e 或 f 要求为关键字形参:
def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)
f(10, 20, 30, d=40, e=50, f=60)